const { defineConfig } = require("@vue/cli-service");
let { list } = require("./src/mock");
const bodyParser = require("body-parser");
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    setupMiddlewares(middle, { app }) {
      app.use(bodyParser.json());
      // 列表请求
      app.get("/api/list", (req, res) => {
        const { pageCode = 1, pageSize = 10, wd = "" } = req.query;

        // 筛选之后的数据
        const newList = list.filter((v) => {
          return (
            v.id.includes(wd) ||
            v.name.includes(wd) ||
            v.address.includes(wd) ||
            v.title.includes(wd)
          );
        });

        res.send({
          code: 200,
          // 分页
          data: newList.slice((pageCode - 1) * pageSize, pageCode * pageSize),
          // 总个数
          total: newList.length,
        });
      });

      // 删除请求(支持单项多想删除)
      // id: 格式要求 id
      // id: 格式要求 id,id,id,id.id
      // 比如我要删除 1
      // /api/list/1
      // 比如我要删除 1    2     3     4
      // /api/list/1,2,3,4
      app.delete("/api/list/:id", (req, res) => {
        // 获取动态路由参数
        const { id } = req.params;
        // 过滤id
        list = list.filter((v) => !id.includes(v.id));
        // 返回
        res.send({
          code: 200,
          message: "删除成功！！",
        });
      });


      // 列表添加
      app.post('/api/list', (req, res) => {
        // 获取添加数据
        const item = req.body
        // 给数据添加id 字段
        item.id = Math.random().toString().slice(2)
        // 头部插入数据
        list.unshift(item)
        // 返回结果
        res.send({
          code: 200,
          message: '添加成功！！'
        })
      })

      // 列表编辑接口
      app.post('/api/list/edit', (req, res) => {
        const { id } = req.body

        const item = list.find(v => v.id === id);

        Object.assign(item, req.body)

        res.send({
          code: 200,
          message: '修改成功！！'
        })

      })
      return middle;
    },
  },
});
